// 寻找旋转排序数组中的最小值

package Leetcode;

class Solution153 {
    public int findMin(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        while (left < right) {
            int mid = (right + left) / 2;
            if (nums[mid] > nums[left]) {// 左边有序，右边可能有旋转点也可能没有
                if (nums[mid] > nums[right]) // 右边有旋转点
                    left = mid + 1;
                else // 整个序列是升序的
                    return nums[left];
            } else { //
                right = mid;
            }
        }
        return nums[right];
    }
}